package com.free.semantic.core.script;

import com.free.semantic.core.takeclient.ConceptInsTakeCommand;
import com.free.semantic.core.ConceptInstanceManage;
import com.free.semantic.core.ConceptManage;

public interface SemanticNetEngine {

    /**
     * 将脚本转换为语义网络结构
     *
     * @param script
     * @return
     */
    ConceptManage buildConceptFromScript(String script);

    void execScript(ConceptManage conceptManage, String script);

    <T> T execScript(ConceptInstanceManage conceptManage, String script);

    ConceptInstanceManage execScript(ConceptManage target, String formula, ConceptInstanceManage instanceManage);

    /**
     * @param conceptInsTakeCommand
     * @return
     */
    ConceptManage buildManageFromTake(ConceptInsTakeCommand conceptInsTakeCommand);

    ConceptInstanceManage buildManageInsFromTake(ConceptInsTakeCommand conceptInsTakeCommand);

}
